/*!
\copyright  Copyright (c) 2022 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file
\ingroup    leabm
\brief      Manage starting and stopping the LE Unicast feature Id.

The LE Unicast feature Id is started when LE Unicast audio is routed and
stopped when LE Unicast is un-routed.

It is expected that the LE Unicast feature Id is always the highest priority
feature Id in any feature priority list it belongs to.

The feature manager is responsible for notifying the handler(s) of lower
priority features Ids that they must to suspend or resume when the LE Unicast
feature Id starts or stops.
*/

#ifndef LE_UNICAST_MANAGER_FEATURE_H
#define LE_UNICAST_MANAGER_FEATURE_H

#if defined(INCLUDE_LE_AUDIO_UNICAST) && defined(ENABLE_MULTIPOINT) && defined(ENABLE_LE_AUDIO_RESTRICTED_MULTIPOINT)

#include "feature_manager.h"

/*! \brief Initialise the LE Unicast feature handler. */
void LeUnicastManager_FeatureInit(void);

/*! \brief Inform feature manager that LE Unicast is starting.

    Currently LE broadcast manager is a high priority feature so the start
    request should always be successful.
*/
void LeUnicastManager_FeatureStart(void);

/*! \brief Inform feature manager that LE Unicast is stopping.
*/
void LeUnicastManager_FeatureStop(void);

/*! \brief Update unicast feature is allowed or not status.

    \param is_allowed FALSE means unicast feature is not allowed, else allowed.
*/
void LeUnicastManager_UpdateFeatureAllowedStatus(bool is_allowed);

#else

#define LeUnicastManager_FeatureInit()

#define LeUnicastManager_FeatureStart()

#define LeUnicastManager_FeatureStop()

#define LeUnicastManager_UpdateFeatureAllowedStatus(is_allowed)

#endif /* defined(INCLUDE_LE_AUDIO_UNICAST) && defined(ENABLE_MULTIPOINT) && defined(ENABLE_LE_AUDIO_RESTRICTED_MULTIPOINT) */

#endif /* LE_UNICAST_MANAGER_FEATURE_H */
